﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using vudu.Logica.Clases;

namespace vudu.PaginasWeb.G2Horario
{
    public partial class addNombreHorarioPreMatricula : System.Web.UI.Page
    {
        #region Atributes

            private Estudiante _estudianteActual;
            private HorarioPreMatricula _miPreMatricula;

        #endregion FinAtributes

        #region Metodos

            protected void InitSecure()
            {
                string miRol = (string)Session["rol"];
                if (miRol != "Estudiante")
                    Response.Redirect("../G3AccesoSistema/InicioSistema.aspx");

                //Session["rol"] = "";
                _estudianteActual = new Estudiante();
                _estudianteActual = (Estudiante)Session["usuario"];

                if (_estudianteActual.ExistPreMatriculaActiva())
                {
                    Response.Write("<script language=\"javascript\">alert('Ya usted no puede registrar mas PreMatriculas')</script>" +
                                    "<script language=\"javascript\">window.location='indexPreMatricula.aspx'</script>");
                }
                if (_estudianteActual.SecuenceCounter != 4)
                    Response.Redirect("indexPreMatricula.aspx");
            }

            protected void Page_Load(object sender, EventArgs e)
            {
                InitSecure();
                _miPreMatricula = new HorarioPreMatricula();
                _miPreMatricula.ListaSecciones = _estudianteActual.MisSeccionesSeleccionadasPreMatricula;
                if (!_estudianteActual.ValidarChoqueHorario(_miPreMatricula.ListaSecciones))
                {
                    Response.Write("<script language=\"javascript\">alert('Se registro un conflicto entre horarios: Los dias " +
                                    _estudianteActual.HorarioChoque1.Dia + " de " + 
                                    _estudianteActual.HorarioChoque1.HoraInicio.Hour +
                                    ":" + _estudianteActual.HorarioChoque1.HoraInicio.Minute + 
                                    " a " + _estudianteActual.HorarioChoque1.HoraFin.Hour +
                                    ":" + _estudianteActual.HorarioChoque1.HoraFin.Minute +
                                    " y de " + _estudianteActual.HorarioChoque2.HoraInicio.Hour +
                                    ":" + _estudianteActual.HorarioChoque2.HoraInicio.Minute +
                                    " a " + _estudianteActual.HorarioChoque2.HoraFin.Hour +
                                    ":" + _estudianteActual.HorarioChoque2.HoraFin.Minute + "')</script>" +
                                    "<script language=\"javascript\">window.location='addMateriasPreMatricula.aspx'</script>");
                }

                if ((_estudianteActual.PageCounter == 4) && (_estudianteActual.PreMatriculaModificable.Codigo != 0))
                {
                    txtOldNombreHorario.Visible = true;
                    txtOldNombreHorario.Text = _estudianteActual.PreMatriculaModificable.Nombre;
                    labelOldNombrePreMatricula.Text = "Antiguo nombre de la prematricula :";
                    labelNombre.Text = "Nuevo Nombre de la PreMatricula: ";
                    labelMigaActual.Text = "Modificar PreMatricula";
                }
                else
                {
                    _estudianteActual.PageCounter = 0;
                    _estudianteActual.PreMatriculaModificable = new HorarioPreMatricula();
                    labelMigaActual.Text = "Agregar PreMatricula";
                    labelNombre.Text = "Nombre *: ";
                }
                labelTitulo.Text = labelMigaActual.Text + "<br /><br /><br /><br />";
                labelEstudiante.Text = _estudianteActual.Nombre + "&nbsp;" + _estudianteActual.Apellido;
            }

            protected void SetPreMatricula()
            {
                _miPreMatricula = new HorarioPreMatricula();
                _miPreMatricula.Nombre = txtNombreHorario.Text;
                _miPreMatricula.Estatus = "Pendiente";
                _miPreMatricula.Fecha = System.DateTime.Now;
                _miPreMatricula.ListaSecciones = _estudianteActual.MisSeccionesSeleccionadasPreMatricula;
            }

            protected void btnNombreHorarioSelected_Click(object sender, EventArgs e)
            {
                if (txtNombreHorario.Text != "")
                {
                    if ((_estudianteActual.PageCounter == 4) && (_estudianteActual.PreMatriculaModificable.Codigo != 0))
                    {
                        SetPreMatricula();
                        _estudianteActual.InsertarHorario(_miPreMatricula);
                        _estudianteActual.EliminarHorario(_estudianteActual.PreMatriculaModificable.Codigo);
                        _estudianteActual.EnviarCorreo(_estudianteActual.IdEst, _miPreMatricula.Codigo, "Horario Modificado");
                        Response.Write("<script language=\"javascript\">alert('Se modifico la prematricula exitosamente')</script>" +
                                    "<script language=\"javascript\">window.location='indexPreMatricula.aspx'</script>");
                    }
                    else
                    {
                        if (!_estudianteActual.ExistNombrePreMatricula(txtNombreHorario.Text))
                        {
                            SetPreMatricula();
                            _estudianteActual.InsertarHorario(_miPreMatricula);
                            _estudianteActual.EnviarCorreo(_estudianteActual.IdEst, _miPreMatricula.Codigo, "Horario Registrado");
                            Response.Redirect("indexPreMatricula.aspx");
                        }
                        else
                        {
                            labelOperationStatus.CssClass = "texto";
                            labelOperationStatus.Text = "<b>Operacion fallida: Ya existe una prematrícula con ese nombre!</b>";
                        }
                    }
                }
                else
                {
                    if ((_estudianteActual.PageCounter == 4) && (_estudianteActual.PreMatriculaModificable.Codigo != 0))
                    {
                        SetPreMatricula();
                        _miPreMatricula.Nombre = txtOldNombreHorario.Text;
                        _estudianteActual.InsertarHorario(_miPreMatricula);
                        _estudianteActual.EliminarHorario(_estudianteActual.PreMatriculaModificable.Codigo);
                        _estudianteActual.EnviarCorreo(_estudianteActual.IdEst, _miPreMatricula.Codigo, "Horario Modificado");
                        Response.Write("<script language=\"javascript\">alert('Se modifico la prematricula exitosamente')</script>" +
                                    "<script language=\"javascript\">window.location='indexPreMatricula.aspx'</script>");
                    }
                    else
                    {
                        labelOperationStatus.CssClass = "texto";
                        labelOperationStatus.Text = "<b>Operacion fallida: Debe colocar un nombre a su horario!</b>";
                    }
                }
                _estudianteActual.PageCounter = 0;
                _estudianteActual.PreMatriculaModificable = new HorarioPreMatricula();
                Session["rol"] = "Estudiante";
            }

            protected void btnBackMateriasSelected_Click(object sender, EventArgs e)
            {
                _estudianteActual.PageCounter--;
                _estudianteActual.SecuenceCounter = 3;
                Response.Redirect("selectPracticasPreMatricula.aspx");
            }

        #endregion FinMetodos    
    }
}